$( document ).on( "ready", function() {
	
	// Borramos cualquier dato
	//$( "#bases_datos" ).find( "option" ).remove().end();
	
	$( ".mensaje_bloqueo" ).css( "display", "none" );
	
	$( "#cargar_bases_datos" ).css( "cursor" , "pointer" );
	$( "#cargar_bases_datos" ).attr( "title", "Actualizar las bases de datos" );
	$( "#loading" ).css( "display" , "none" );
	
	$( "#cargar_tablas" ).css( "cursor" , "pointer" );
	$( "#cargar_tablas" ).attr( "title", "Obtener las tablas de la base de datos seleccionada" );
	
	// ------------------------------------------- Carga de base de datos
	$( "#cargar_bases_datos" ).on( "click", function() {			
			
			$( "div.mensaje_bloqueo .contenido_mensaje_bloqueo" ).empty();			
			$( "div.mensaje_bloqueo .contenido_mensaje_bloqueo" ).append( "Obteniendo la informacion de las bases de datos registradas" );
			
			//console.log( $( "div.mensaje" ) );
			
			bloquearPantalla(  );
			cargarInformacionBasesDatos();
		} );	
	
	function cargarInformacionBasesDatos()
	  {
		$.ajax({
				url : $( "#url" ).val(),
				type : "POST",
				dataType : "json",
				data : { op : "base_datos" } ,
				success: function( data ) {				
						$( "#bases_datos" ).find( "option" ).remove().end();
						$( "#bases_datos" ).append( $( "<option></option>" ).attr( "value", "" ).text( "Seleccione una base de datos" ) );
						
						$.each( data, function( key, val ) 
						  {	
							 $('#bases_datos').append($('<option></option>').attr('value', val.base_datos ).text(val.base_datos));							 
						  });
				  },
				complete : function( )
				  {
					desbloquearPantalla();
				  }			
			});		
	  }
	
	// -----------------------------------------------------------------------------------------------
	
	// ----------------------------------- CARGANDO LAS TABLAS DE LA BASE DE DATOS SELECCIONADA
	$( "#cargar_tablas" ).on( "click", function() {
		if ( $( "#bases_datos option:selected" ).val() != "" )
		  {
			//console.log( $( "#bases_datos option:selected" ).text() );
			$( "div.mensaje_bloqueo .contenido_mensaje_bloqueo" ).empty();			
			$( "div.mensaje_bloqueo .contenido_mensaje_bloqueo" ).append( "Obteniendo la informacion de las tablas de la base de datos " + $( "#bases_datos option:selected" ).text() );
			//console.log( $( "div.mensaje" ) );
			bloquearPantalla(  );
			
			$('#tablas_bd').empty();
			cargarInformacionTabla( $( "#bases_datos option:selected" ).val() );
			//datos();
		  }
		else
		  {
			console.log( "Sin seleccion" );
		  }
	} );
	
	function cargarInformacionTabla( basedatos )
	  {
		  $.ajax( {
			  url : $( "#url" ).val(),
		  	  type : "POST",
			  data : { op : "tablas", db : $( "#bases_datos option:selected" ).val() },
			  dataType : "json",
			  success : function( data )
			    {
				  var contador = 0;
				  
<<<<<<< .mine
				  div = ' <table width="100%" border="1" class="tabla">';
				  div += '	<tr>'; 
				  div += '		<td class="header_tabla">Nombre de la Tabla</td>';
				  div += '		<td class="header_tabla">Campos</td>';
				  div += '		<td class="header_tabla">Generar Modelo';
				  div += '			<input type="checkbox" name="chkModels" name="chkModels" />';
				  div += '		</td>';
				  div += '		<td class="header_tabla">Generar Clases';
				  div += '			<input type="checkbox" name="chkClases" name="chkClases" />';
				  div += '		</td>';
				  div += '	</tr>'; 
=======
				  div = ' <table class="tabla">';
				  div += '	<caption class="titulo_tabla">';
				  div += '		Tablas pertenecientes a la base de datos ' + $( "#bases_datos option:selected" ).val();
				  div += '	</caption>';
				  div += '	<colgroup span="4" width="25%">';
				 // div += '		<col width="20%" /><col width="20%" /><col width="20%" />';
				  //div += '		<col width="10%" /><col width="40%" />';
>>>>>>> .r63
				  
				  div += '	<colgroup>';
				  div += '	<thead>';
				  div += '		<tr>'; 
				  div += '			<th scope="col" class="header_tabla">Nombre de la Tabla</th>';
				  div += '			<th scope="col" class="header_tabla">Seleccionar Id</tdh>';
				  /*div += '			<th scope="col" class="header_tabla">';
				  div += '				Ubicaci&oacute;n'; 
				  div += '			</th>'; */
				  div += '			<th scope="col" class="header_tabla">Ubicaci&oacute;n del Modelo';
				 // div += '				<input type="checkbox" name="chkModels" name="chkModels" />';
				  div += '			</th>';
				  div += '			<th scope="col" class="header_tabla">Ubicaci&oacute;n de la Clases';
				 // div += '				<input type="checkbox" name="chkClases" name="chkClases" />';
				  div += '			</th>';
				  
				  div += '		</tr>'; 
				  div += '	</thead>';
				  div += '	</tbody>';
				  
				  var celda = "fila_normal";
				  
				  $.each( data, function( key, val ) 
				   {						
					  celda = contador % 2 == 0 ? "fila_normal" : "fila_color";
					  
					  div += '	<tr class="' + celda + '">'; 
					  
					  div += '		<td>';
					  div += '			<input type="hidden" id="tabla' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '" value="' + val.tablas + '" />';
					  div += 			val.tablas;
					  div += '		</td> ';
					  
					  div += '		<td class"columna_centrada" align="left"> ';
					  div += '	  	   <select class="select_id" name="campos' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '" id="campos' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '">';
				      div += '			  <option value="">     Obtener Id automaticamente     </option>';					  
					  					  camposTabla( val.tablas, "campos" + ( $( "#bases_datos option:selected" ).val() + ""  + contador )  );					  
				      div += '		   </select>';
				      div += '		   Auto <input type="checkbox" name="chkAuto" id="chkAuto' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '" checked="checked" />';
				      div += '		</td>';
				      
				     /* div += '		<td class"columna_centrada" align="center" >';
				      div += '		    <label class="etiqUbicacion"></label>';			
				      // div += '	  		<input class="ubicacion" type="text" name="ubicacion' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '" id="ubicacion' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '" size="50" />';	
				      div += '		</td>';*/
				      
				      div += '		<td class"columna_centrada" align="center"> ';
					  div += '	  	   <input class="modelo" type="text" name="Model' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '" id="Model' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '" size="35" />';				     
				      div += '		</td>';
				     
				      div += '		<td class"columna_centrada" align="center"> ';
				      div += '	  	   <input class="clase" type="text" name="Clases' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '" id="Clases' + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) + '" size="35" />';
				      div += '		</td>';				      
				      
				      div += '	</tr>';
				      
				      //console.log( "#Model" + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) );
				      $( "#Model" + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) ).focusin( function() {
						  //$( "#Clases" + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) ).val( $( "#Model" + ( $( "#bases_datos option:selected" ).val() + ""  + contador ) ).val() );
						  console.log( "escribiendo" );
					  } );
				      
					  contador++;
				   });
				  
				  div += '	</tbody>';
				  div += '</table>';
					  
				  $('#tablas_bd').append( div );
				  
				 
			    },
			  complete : function()
			    {
				  desbloquearPantalla();
				  //asignarUbicacion();
			    }
		  } );
	  }
	
	$( "#generar_modelo" ).on( "click", function() 
	  {
		//console.log( $( "div #tablas_bd table" ).length );
		if ( $( "div #tablas_bd table" ).length > 0 )
	      {
			var ubicacion_base = "";
			var tbl = "";
			var obtener_id = "";	
			var generar_clase = false;
			var ubicacion = "";
			var autoincremental = false;
			
			//console.log( "generando el modelo" );
			$( ".modelo" ).each( function( indice, valor ) 
	          {
				if ( valor.value != "" )
				  {
					obtener_id =  $( "#campos" + $( "#bases_datos option:selected" ).val() + "" + indice  + " option:selected" ).val();	
					tbl =  $( "#tabla" + $( "#bases_datos option:selected" ).val() + "" + indice ).val();	
					ubicacion_base = $( "#ubicacion_clases" ).val();
					ubicacion = valor.value
					
					generar_clase = $( "#Clases" + $( "#bases_datos option:selected" ).val() + "" + indice ).val() != "";
					autoincremental =  $( "#chkAuto" + $( "#bases_datos option:selected" ).val() + "" + indice ).is( ":checked" ) ? 1 : 0;
								
					//console.log( obtener_id + " " + ubicacion + " " + tbl + " " + autoincremental );
					
					if ( generar_clase == false )
					  {
						$.ajax({
							url : $( "#url" ).val(),
							data : { op : "generar" , 
								     db : $( "#bases_datos option:selected" ).val(), 
								     generar : 1, 
								     ubicacion_m : ubicacion, 
								     tabla : tbl, 
								     ubicacion_base : ubicacion_base,
								     autoincremental : autoincremental,
								     campo_id : obtener_id
								   },
							type : "POST",
							dataType : "json",
							success : function( data )
							  {
								 console.log( tbl );
								 console.log( data );
							  },
							complete : function() {
								 console.log( "Modelo generado " + ubicacion );							 
							  }
						});
					  }
					else
					  {
						ubicacion_clase = $( "#Clases" + $( "#bases_datos option:selected" ).val() + "" + indice ).val();
						
						$.ajax({
								url : $( "#url" ).val(),
								data : { op : "generar" , 
										 db : $( "#bases_datos option:selected" ).val(), 
										 generar : 3, 
										 ubicacion_c : ubicacion_clase, 
										 tabla : tbl, 
										 ubicacion_m : ubicacion, 
										 ubicacion_base : ubicacion_base ,
									     autoincremental : autoincremental,
									     campo_id : obtener_id 
									   },
								type : "POST",
								dataType : "json",
								success : function( data )
								  {
									 console.log( tbl );
									 console.log( data );
								  },
								complete : function() {
									 console.log( "Clase generada " + ubicacion );
								  }
							});
				     }
				  }
				
			  } );
		  }
		else
		  {
			
		  }
	} );	
	
	
	// Cargamos los campos de la tabla
	
	function camposTabla( tbl, campo )
	  {
		// $( "#" + campo ).find( "option" ).remove().end();
		 //console.log( "Base de datos: " + $( "#bases_datos option:selected" ).val() );
		// console.log( "Tabla: " + tbl );
		// console.log( "Select: " + campo );
		 
		 $.ajax( {
			 url : $( "#url" ).val(),
			 type : "POST",
			 data : { op : "campos" , db : $( "#bases_datos option:selected" ).val() , tabla : tbl },
			 dataType : "json",
			 success : function ( data ) {
				// console.log( data );
				 $.each( data, function( key, val )
				   {
					 var autoimcremental = val.autoincrement != "" ? " Auto" : "";
					 var primary = val.pri == "1" ? " PRI" : "";
					 
					 $( "#" + campo ).append( $( "<option></option>" ).attr( "value" , val.campo ).text( val.campo + primary + autoimcremental  ) );
					 //console.log( val.campo );
				   });
			   },
			 complete : function(){
				 //desbloquearPantalla();
			   }  
			 
		 } );
	  }
	
	// -----------------------------------------------------------------------------------------------------------
} );